package com.javarush.test.level19.lesson10.bonus02;

/* Свой FileWriter
Реализовать логику FileConsoleWriter
Должен наследоваться от FileWriter
При записи данных в файл, должен дублировать эти данные на консоль
*/

import java.io.File;
import java.io.FileDescriptor;
import java.io.FileWriter;
import java.io.IOException;

public class FileConsoleWriter extends FileWriter{



    public FileConsoleWriter(String fileName) throws IOException {
        super(fileName);
    }

    public FileConsoleWriter(String fileName, boolean append) throws IOException {
        super(fileName, append);
    }

    public FileConsoleWriter(File file) throws IOException {
        super(file);
    }

    public FileConsoleWriter(File file, boolean append) throws IOException {
        super(file, append);
    }

    public FileConsoleWriter(FileDescriptor fd) {
        super(fd);
    }




    @Override
    public void write(int c) throws IOException {
        System.out.print(c);
        super.write(c);
    }

    @Override
    public void write(char[] cbuf, int off, int len) throws IOException {
        System.out.print(cbuf.toString().subSequence(off, off+len));
        super.write(cbuf,off,len);

    }

    @Override
    public void write(String str, int off, int len) throws IOException {


        System.out.print(str.substring(off, off+len));
        super.write(str, off, len);

    }



    public static void main(String[] args) throws IOException
    {

        char[] c=new char[]{77,44,46,89,122};
        FileConsoleWriter f = new FileConsoleWriter("D:/file1.txt");
        f.write("hello", 1,3);
        f.write("world");
        f.write(c);
        f.write(c, 2,3);
        f.close();

    }




}
